/**
 * Created by Mike on 2018/9/4.
 */
import {
  NativeModules,
  NativeAppEventEmitter,
  NativeEventEmitter,
  DeviceEventEmitter,
  Platform,
} from 'react-native'

const { ScreenCapture } = NativeModules

let _appEmitter;
(function () {
  if (Platform.OS === 'ios') {
    if (!_appEmitter) {
      _appEmitter = new NativeEventEmitter(ScreenCapture)
      if (!_appEmitter) {
        _appEmitter = NativeAppEventEmitter
      }
    }
  } else {
    _appEmitter = DeviceEventEmitter
  }
})()

const eventName = 'ScreenCapture'

export default class index {

  /**
   * 启动服务
   * @returns {*}
   */
  static startListener (): Promise {
    return ScreenCapture.startListener()
  }

  /**
   * 停止服务
   */
  static stopListener () {
    ScreenCapture.stopListener()
  }

  /**
   * addScreenCaptureListener
   * @param {回调方法} handler
   */
  static addScreenCaptureListener (handler: Function) {
    //判断是否系统做了相关的事件处理
    _appEmitter.addListener(eventName, handler)
  }

  /**
   * 删除回调
   */
  static removeScreenCaptureListener () {
    _appEmitter.removeAllListeners(eventName)
  }

  /**
   * 设置水印
   * @param params
    {
        text: '远洋移动办公\n我的水印我做主', // 水印文字 支持换行符 必须传
        textSize: 14,                      // 字体大小 可以不传 默认14 单位dp
        color: '#993b3b3b',                // 字体颜色 可以不传 默认#993b3b3b 99代表透明度 3b3b3b代表色值
        horizontalSpacing: -1,             // 横向间距 可以不传 -1代表默认文字高度 单位dp
        verticalSpacing: -1,               // 竖向间距 可以不传 -1代表默认文字宽度 单位dp
        textSpacing: 20                    // 文字换行间距 可以不传 默认20 单位dp
    }
   */
  static setWatermarkParams (params: object) {
    if (Platform.OS === 'android')
      ScreenCapture.setWatermarkParams(params)
  }

}
